package cn.xiuxius.askbox.service;

import cn.xiuxius.askbox.pojo.dto.add.UserAddDTO;
import cn.xiuxius.askbox.pojo.dto.common.LoginDTO;
import cn.xiuxius.askbox.pojo.dto.common.RegisterDTO;
import cn.xiuxius.askbox.pojo.dto.query.UserQueryDTO;
import cn.xiuxius.askbox.pojo.dto.update.UserUpdateDTO;
import cn.xiuxius.askbox.pojo.dto.update.UserUpdateStateDTO;
import cn.xiuxius.askbox.pojo.entity.UserEntity;
import cn.xiuxius.askbox.pojo.result.PageResult;
import cn.xiuxius.askbox.pojo.vo.LoginVO;
import cn.xiuxius.askbox.pojo.vo.UserVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xiaoxiu
 * @since 2024-07-20
 */
public interface IUserService extends IService<UserEntity> {

    void addUser(UserAddDTO dto);

    PageResult getUsersByPage(UserQueryDTO dto);

    UserVO getUserByUuid(UserQueryDTO dto);

    void updateUser(UserUpdateDTO dto);

    void updateUserState(UserUpdateStateDTO dto);

    void deleteUser(String uuid);

    LoginVO login(LoginDTO loginDTO);

    void register(RegisterDTO dto);

    UserVO getUserByUsername(UserQueryDTO dto);
}
